import Vue from 'vue'
// 作用：相当于reset.css，重置css的默认样式
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'// 导入组件
import 'element-ui/lib/theme-chalk/index.css'// 导入组件对应的样式
// 导入语言包，进行多语言切换
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
import '@/styles/index.scss' // global css
import request from '@/utils/request'
import App from './App'
import store from './store'
import router from './router'
import '@/icons' // icon
import '@/permission' // permission control
// 导入组件
// import PageTools from '@/components/PageTools'
import component from '@/components/index'
import i18n from '@/lang'
// Vue.use在使用插件时如果插件是对象，会自动调用install函数
// Vue.use在使用插件时如果插件是函数，会自动调用这个函数
Vue.use(component)
// 全量导入
import * as directive from '@/inserted'
// Vue.component('PageTools', PageTools)
// 如果想要中文版 element-ui，按如下方式声明
// 全局注册组件
// Vue.use(ElementUI)
// 批量注册全局的自定义指令
// Object.keys(directive)拿到全部的key值，得到一个数组然后进行遍历
Object.keys(directive).forEach(key => {
  Vue.directive(key, directive[key])
})
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})
// Vue.directive('imgerror', {
//   inserted(el, binding) {
//     el.onerror = function() {
//       el.src = binding.value
//     }
//   }
// })
// Vue.directive('color', {
//   inserted(el, binding) {
//     el.style.color = binding.value
//   }
// })

Vue.config.productionTip = false
// Vue构造函数
// 构造函数原型上的属性和方法可以被 实例所访问
Vue.prototype.$request = request
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
